Microsoft®
DirectX® 9.0 SDK Update (October
2004)
Final Release
Last updated
October 04, 2004
This is
Microsoft's DirectX 9.0 Software Development Kit (SDK) Update for
October 2004 Final release. Because this is an update, we have
changed the structure of this readme. Much of the information
will remain as it was for the release DirectX 9.0 SDK Update (Summer
2003). However there have been some additions and
modifications with the content specific to the SDK (October 2004)
Update.
Primary areas of
concentration for the October Update were for PIX, Preview pipeline,
and updates for the Direct3D Extension
Library (D3DX), Graphics Samples, Sample Frame work, tools and
documentation. This includes the final version
of the next DirectX Runtime release called "DirectX 9.0c"
with updated Managed DirectX binaries from the SDK Update (October
2004).
After installing,
those new to DirectX should start with the DirectX 9.0
documentation. More seasoned developers may also want to view the
"What's New" section. Professional DirectX developers should refer
to the "KNOWN ISSUES" section prior to raising concerns.
What’s New
Installation
DirectX 9 SDK Notes
Samples
Tools
D3DX
Documentation
DirectX for Managed Code
Compiler
Support
CD Layout
Special Thanks
Roland SoundCanvans Sound Set for General MIDI
and GS
New Samples:
C++
AntiAliasing - Multisampling attempts to reduce aliasing by
mimicking a higher resolution display; multiple sample points are
used to determine each pixel's color. This sample shows how the
various multisampling techniques supported by your video card affect
the scene's rendering. Although multisampling effectively combats
aliasing, under particular situations it can introduce visual
artifacts of its own. As illustrated by the sample, centroid
sampling seeks to eliminate one common type of multisampling
artifact. Support for centroid sampling is supported under Pixel
Shader 2.0 in the latest version of the DirectX runtime.
IME Whitepaper - The whitepaper will explain the input method
editor, or IME as it relates to game developers. It will explain
what it is, how to use it, why rendering IME graphics is challenging
with full screen 3D applications, and explain how to render IME
graphics using the IME API. It will briefly discuss how to use the
code found in the latest DirectX Sample Framework to address this.
Instancing - The sample demonstrates 4 different rendering
techniques to achieve the same result.
ShortcutDisable - This document describes how to temporarily
disable Windows keyboard shortcuts to prevent disruption of game
play for full screen games.
ConfigSystem - The sample showcases a configuration system
using a database of hardware device models. The sample detects the
hardware on the system, and then looks up the database to find
custom behavior defined for those existing devices.
Managed
PrtPerVertex - This new sample demonstrates how to use
PrtEngine, a pre-computed radiance transfer (PRT) simulator that
uses low-order spherical harmonics (SH). The sample also
demonstrates how to use these results to accomplish dynamic light
transport using a dynamic lighting environment with vs_1_1 vertex
shader.
FragmentLinker - This new sample shows how to use the
FragmentLinker interface. Shader source code can be split into a
series of shader fragments, which are compiled separately and linked
together to form a complete shader; this linking stage is very
efficient, making it suitable to runtime use. In this way, a
Direct3D application can custom-build and appropriate shader for the
current graphics card.
SimpleAnimation - The new SimpleAnimation sample illustrates mesh
animation with skinning using D3DX.
Tool Updates
PIX
Call capture and playback - PIX can now capture all the Direct3D
API calls and resources for playback. With this feature you can
predictably capture and replay the exact Direct3D stream repeatedly.
Asynchronous events - PIX counters can now run asynchronously
from the current frame. This allows for counters to report back
information for a frame that occurred in the past.
Triggers and Actions – PIX not only captures frame by frame
counter information. A set of triggers and actions can be created
to start and stop recording of information at different frames and
times.
Maya Exporter
Maya 6 Support - The Maya preview pipeline now works
with Maya 6. Both Maya 5 and 6 plugins contain the exact same
functionality.
Updated installer - The Maya preview pipeline now
installs directly with the SDK install, you will no longer have to
run a secondary install script.
Procedural texture support – Textures created in an fx file that use
the CPU to generate a procedural texture are now supported in the
viewer window.
DirectX
for Managed Code
Bug Fixes
o
Fixed a significant memory leak in TextureLoader.FromFile
o
Fixed a number of unhandled exception errors
D3DX
Bug Fixes
o
Debug Output Muting: D3DX Debug output can be turned on or off
programmatically using the new D3DXDebugMute function.
o
PRT: PRT Blocker meshes no longer have a 65,535 vertex limit.
o
FX:
- Fixed incorrect behavior when a texture was referred to by
multiple samplers in multiple techniques.
- Fixed issue in texture UV coordinate transformation.
Updated Documentation
Updated Documentation for all above areas (see the What’s New
section of the Documentation for details)
Other
Notes:
-
All DirectShow Tools and samples have been moved to the Extras
download. There are instructions for integrating the samples
and tools into the SDK install.
-
In anticipation of advances
designed to give developers more advanced, powerful and easier
to use tools, the company’s Windows Gaming and Graphics
Technologies team notes the following changes to the DirectX
group of APIs:
-
DirectPlay is intended to address identified security issues
through December 31, 2004. Future efforts concentrate on
enhancing the core Windows networking technologies so the
fundamentals of gaming technologies make the most of Windows
technologies. DirectInput, DirectSound and DirectMusic will maintain their
current status until new technology in these areas is made
available.
-
Use of DirectDraw is no longer
recommended. With the release of DirectX 9.0 all 2D
functionality is contained within Direct3D and it's associated
helper functions in Direct3D extensions (D3DX).
back to top
-
DirectX 9.0 SDK only supports Windows 2000 and above. The
SDK Developer Runtime is available on Windows 98 and Windows ME
systems. If you choose to install on Win9x platforms you will
encounter an error during installation.
-
We recommend you remove previous versions of the DirectX SDK
prior to installing DirectX 9.0 SDK Release (see UNINSTALL).
While it is possible, it is an unsupported installation.
-
In
addition, you should uninstall any DirectX SDK installations
that may be part of a Microsoft Platform SDK installation prior
to installing the DirectX 9.0 SDK.
-
On
Windows 2000 or Windows XP, or Windows Server 2003, You must be logged on as an
administrator before installing the DirectX 9.0 SDK and runtime.
-
SDK Installation to a network
share is not supported. Specifically some components (ex.
documentation will not install, managed samples will not run).
-
Please be alerted to the fact that using the "subst"
command can result in path names that are too long for the
installer to operate correctly. Please do not use this command
for determining target drives of the DirectX SDK installer prior
to invoking the installer. This is also liable to cause the SDK
uninstaller to fail.
-
The
DirectX 9.0 runtime installer should not be run in Compatibility
Mode.
-
Direct Animation is not registered properly on
SDKDev debug runtime install.
-
The Reference Rasterizer is not installed on any
versions of Windows Server 2003 product family.
-
Several Virus Protection software applications interferes with
SDK installation and may require you to temporarily disable the
Virus Protection software until SDK installation is completed.
Installation notes on 64-bit Platforms
-
When
installing on a 64 platform, both the 32 and the 64 bit version
of debug files will be installed. The location of the 32 bit
version of the DirectX control panel which controls debug
settings can be found at %windir%\syswow64\directx.cpl. The 64
bit version of the DirectX control panel will show up in the
Windows Control Panel after installing the SDK.
-
The
is no support for the IA64 bit platforms.
-
There is no 32-bit developer runtime support on 64-bit platform
for this release.
-
Currently the Documentation for Visual Studio .NET 2003 and the
Developer Runtime for X64 are not uninstalled automatically when
you uninstall the Microsoft DirectX 9.0 SDK. They can be removed
manually by going to the Add/Remove Programs Control Panel
selecting the item in the list and choosing remove.
Uninstall:
To uninstall, use "Add/Remove
Programs" from the Control Panel to uninstall
the InstallShield installations.
back to top
Issues:
- The current samples do not
work with the debugging utility D3DSpy. Any application that
loads D3D9.dll directly from the \windows\system32 folder
will also not work.
-
If you
are setting up a D3D device on hardware which supports
hardware pixel processing but does not support hardware
vertex processing then you need to set the behavior flags
accordingly. In order to make samples that properly
fallback to software vertex processing, you should remove
following in the sample's IsDeviceAcceptable callback:
//
Must support vertex shader 1.1
if( pCaps->VertexShaderVersion < D3DVS_VERSION( 1, 1
) )
return false;
and
ensure that the following is in the sample's
ModifyDeviceSettings callback:
void CALLBACK ModifyDeviceSettings( DXUTDeviceSettings*
pDeviceSettings, const D3DCAPS9* pCaps )
{
// If device doesn't support HW T&L or doesn't support
1.1 vertex shaders in HW
// then switch to SWVP.
if( (pCaps->DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) ==
0 ||
pCaps->VertexShaderVersion < D3DVS_VERSION(1,1)
)
{
pDeviceSettings->BehaviorFlags =
D3DCREATE_SOFTWARE_VERTEXPROCESSING;
}
else
{
pDeviceSettings->BehaviorFlags =
D3DCREATE_HARDWARE_VERTEXPROCESSING;
}
Samples on 64-bit Platforms
-
DirectShow documentation for IMediaEvent::GetEvent
shows lParam1 and lParam2 as pointers to longs. However, the
actual implementation in control.h defines them as pointers
to LONG_PTR. Note that LONG_PTR is capable of properly
representing a long or a pointer on 32-bit or 64-bit
platforms. Use of pointer to long in 64-bit sample or
application code and typecasting by (LONG_PTR *) in the call
will cause the compiler to write 64 bits on the stack
location referenced by the pointer. As a standard long is
not guaranteed to be 64 bits, corruption of the stack will
result. Many of the DirectShow samples had this
non-portability. All affected samples have been corrected to
use LONG_PTR for declaration of lParam1 and lParam2
-
Many of the DirectShow samples include atlbase.h,
which in turn includes shlwapi.h. In order for these samples
to build, the Internet Development SDK (version 6.0 or
newer) SDK component of the Platform SDK must be installed.
This can be done by selecting that component after
successful Core SDK installation, or reinvoking SetupA64.Exe
and selecting the component for installation. Note that
invoking "Platform SDK Update Site" from the start menu with
the beta 1 SDK will attempt to download an older version of
the Internet Development SDK which is not suitable for X64
builds.
-
The DirectShow Filters\PushSource sample will fail to
register when built for debug X64. This is a known issue and
should be ignored.
-
The X64 DirectShow DVDSample and PlayDVD samples require a
64-bit native DVD decoder to function properly. No such
decoders were available at the time of this SDK beta
release. It is likely that 3rd parties will provide
decoders, so the sample build environments and pre-built
binaries have been left intact in the SDK.
Issues:
-
The preview pipeline will only
work on WindowsXP
-
Accessing the DirectX Control Panel for 32-Bit
application on x64 platforms: The 32-Bit version of the
DirectX.cpl can be located by opening the Control Panel and
double clicking on x86 Control Panel. A link to the 32-bit
version of the DirectX.cpl exists there. Changes made in the
32-Bit version only effect settings for the 32-Bit
applications. Changes made in the 64-Bit version only effect
settings for the 64-Bit applications.
-
DirectX.cpl is listed as old by DXDiag in Windows XP Service
Pack 2. This is a known issue and can be safely
ignored.
-
Maya may be unstable if you unload the DirectX plugin after
the plug-in has been started and viewed objects. If you do
not want the plug-in loaded into Maya, you should choose the
option to no auto-load the plug-in into Maya and restart
Maya.
-
SampleBrowser Documentation Links for the Maya and 3DS Max
Exporters
Although the documentation for the exporters do exist, the
documentation links in the Sample Browser are incorrect. The
documentation can be found at:
DirectX Graphics -> Tools
-
When the photoshop plug-in is use with Paintshop Pro, the
loading of images with alpha channel causes paintshop pro to
multiply the alpha channel by the RGB channels and discards
the alpha channel . This causes images with the format XRGB
to be loaded empty.
-
The photoshop plug-in does not currently support saving of
TGA or PPM files.
-
When exporting an x file from the 'DirectX>Export Scene'
menu option, make sure that you include the .x extension
when saving as it is not being added by default.
-
Control Panel option to switch between version so DirectX
for Managed Applications is unavailable.
Manually Switching between the Retail and Debug versions of
DirectX for Managed Applications
====================================================================
The option in the DirectX Control Panel to switch between
the Retail and Debug versions of DirectX for Managed
Applications is currently disabled due to some problems in
the control panel. The following steps are provided to allow
the user to switch between the two versions manually.
1) Locate the installation directory for the Microsoft
DirectX 9.0 SDK Update (October 2004). The default directory
is C:\Program Files\Microsoft DirectX 9.0 SDK (October
2004).
2) In this directory for the version of the DirectX for
Managed Applications you wish to install in either the
Developer Runtime\Managed DirectX\Retail or Debug
subdirectory.
3) Launch the mdxredist.msi file located in that directory
by double clicking on it or simply running it from a command
line. If a previous version of DirectX for Managed
Applications is installed, you will be presented with an
option to uninstall it. Click Next and allow the
uninstallation of the previous version to finish. Once this
is completed, launch the mdxredist.msi file again, and you
will be presented with the End User License Agreement.
4) Continue with setup by following the instructions in the
dialogs to finish installing this version of the package.
PIX
ISSUES
-
PIX uses an application's PDB file in order to monitor its
D3DX usage. You may have problems gathering D3DX usage
information with PIX if your application's PDB file was
generated by prerelease versions of Visual Studio 2005
-
PIX: Direct3D call stream capture may not work correctly if
your app contains pixel shaders that are using a shader
model less than 2.0
-
PIX experiment files can be corrupted if an action is
changed to the "Set Per-Frame Counters" type from another
action type. To avoid this problem, create a new action
rather than modifying an existing one.
-
Inorder to use PIX with your application, it is expected that
your application can handle a call to
OpenProcess(PROCESS_QUERY_INFORMATION). If your game returns
NULL, your application will not be usable with the PIX tool.
-
While we don't ship any default counter sets, the following
will help you identify performance bottlenecks . The
following counter sets cover areas including general batch
submission, Input / Output costs and Resource management and
are intended to be used as series of test passes.
Initial Run
Number of Draw* calls
Number of DIP calls
New resource bytes allocated this frame
Locks on resource objects this frame
SetVertexShaderConstant<T> calls this frame
SetPixelShaderConstant<T> calls this frame
SetRenderState calls this frame
SetTexture calls this frame
SetVertexShader calls this frame
SetPixelShader calls this frame
Draw Submission (Batches)
Number of DrawPrim calls
Number of DIP calls
Number of DPUP calls
Number of DIPUP calls
Locks on VB objects this frame
Locks on IB objects this frame
Locks on texture objects this frame
SetRenderState calls this frame
SetPixelShader calls this frame
SetTexture calls this frame
SetVertexShader calls this frame
SetRenderTarget calls this frame
IO Pass
Process % Processor Time[Target Process]
Process IO Read Bytes/sec
Process IO Write Bytes/sec
Memory: Page Faults/sec
Processor: % Procesor Time[Total]
Number of DIP calls
Resource Usage
Number of DIP calls
Locks on VB objects this frame
Locks on default pool VB objects this frame
Locks on managed pool VB objects this frame
New VB objects allocated this frame
New IB objects allocated this frame
Locks on IB objects this frame
Locks on default pool IB objects this frame
Locks on managed pool IB objects this frame
New texture objects allocated this frame
Locks on texture objects this frame
Locks on default pool texure objects this frame
Locks on managed pool texture objects this frame
Memory: Page Faults/sec
back to top
Issues:
-
D3D_DEBUG_INFO extensions
define a CreationCallStack field on Direct3D resources. To
enable creation call stacks, create the following registry
value: \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\D3D9Debugging\EnableCreationStack
= 1 Enabling this feature can cause a large performance hit
in many applications, and should only be used when the
functionality is specifically needed for debugging.
In order to use Visual C 6.0
with D3DX you need to link with the D3DX that is located in
the extras directory at the location: Extras\D3dx Visual
Studio 6\d3dx9.lib. In the future, support for Visual Studio
6 may not be continued.
-
The D3DX library included in
this release is dependant on the Direct3D runtimes that
shipped with this SDK. If you link against this D3DX you
should make sure you redistribute the runtime from this SDK
-
When compiling HLSL code to
the 3.0 target, significant code reordering is done to move
gradient computations outside of flow control.
-
D3DXSaveMeshHierarchyToFiles()
does not currently save compressed animation sets.
-
ID3DXSkinInfo::ConvertToBlendedMesh/ConvertToIndexedBlendedMesh()
does not currently run on hardware that does not support
fixed-function vertex blending.
-
When an effect is between
Begin() and End() (ie: a technique is active), changes to
shared parameters used inside that technique will not take
effect until the next Begin() - even if you call
CommitChanges().
-
When opening files originally
in X8R8G8B8 format and saving them in DXT1, DXT2 or DXT4
formats, the resulting texture will be blank. This is due to
the fact that these formats use pre-multiplied alpha. Saving
in DXT3 and DXT5 formats works as expected, since those
formats do not use pre-multiplied alpha. This will be fixed
in a future release.
-
Mesh that are to be used as
Blocker meshes must be under 65535 vertices to work with
PRT. This will be fixed in a future release.
When an effect is between Begin() and End() (ie: a technique
is active), changes to shared parameters used inside that
technique will not take effect until the next Begin() - even
if you call CommitChanges().
For texture files containing simple textures (not cubes or
volumes) with multiple mip levels, if the image is opened as
an ENTIRE file and then saved back into the original or into
a new file (via “Save As”), the file is not saved correctly,
and the mip levels below the main image are all blank. This
is due to an incorrect memory offset when copying file data.
This will be fixed in a future release.
back to top
Issues:
-
The
known issues with the DirectX 9.0 Documentation are described in
a separate file. You will find
these issues listed in the DirectX9_Doc_Readme.txt file found in
the <DXSDK Installed Folder>\Documentation\DirectX9 folder.
-
There
are two mistakes on the “Flow Control” page, in the “Interaction
of Per-Pixel Flow Control With Screen Gradients”
section
Scenario
A is described as: “Operations that are permitted inside
flow control that could vary across the pixels in a
primitive. These include the operations listed in the
following table.”
Scenario
A should be described as: “Operations that are
not permitted
inside flow control that could vary across the pixels in a
primitive. These include the operations listed in the
following table.”
The
title of column B in the table in scenario A is “Is
Permitted in Flow Control when:”
The
title of column B in the table in scenario A should be is “Is
Not Permitted in Dynamic Flow Control when:”
-
The
documentation from previous DirectX releases is also available
on
http://msdn.microsoft.com/directx
-
Installing DirectX documentation
from both the DirectX
SDK and MSDN® Library can result in duplicate topics in Visual
Studio. If this occurs, you should take the following steps to
uninstall the DirectX documentation from the SDK.
-
In Control Panel, click the
Add/Remove Programs icon.
-
Highlight Microsoft DirectX
9.0 Documentation and then click Remove.
-
The
installation of some applications, such as Autodesk Inventor,
may break a registry key rendering the DirectX SDK documentation
unreadable. To solve this problem, complete the following steps:
1. Search for the file CookDoc.dll on your local file system. By
default, it is located in the following folder:
[root]\Program Files\Common Files\Microsoft Shared\MSDN
2. Open a command line interface (by running cmd.exe) and issue
the following command:
RegSvr32 "%PATH%\CookDoc.dll"
where %PATH% is the actual directory location of CookDoc.dll on
your local file system. For example:
RegSvr32 "C:\Program Files\Common Files\Microsoft Shared\MSDN\CookDoc.dll"
Use the quotation marks to quote the full path towards the DLL.
If re-registering the DLL was successful, you will see the the
following message:
DllRegisterServer in c:\program files\Common Files\Microsoft
Shared\MSDN\CookDoc.dll succeeded
Requirements:
-
The DirectX
managed code application programming interface (API)
documentation is automatically installed with DirectX 9.0 when
Visual Studio .Net is installed.
Open Visual Studio .NET and then, from the Help menu at the top,
choose Contents. The documentation node in the Table of Contents
is called DirectX 9.0 (Managed). The documentation can also be
viewed on the Web at http://www.msdn.microsoft.com. See the help
topic, "Tips and Tricks Using Managed Code," for the basics of
how to install and use DirectX managed code and documentation.
Requirements:
Issues:
-
he
managed version of the PRTPerVertex sample is missing a
config file required to properly execute. This is a known
issue and will be fixed in a future update. To work around
the problem, rebuild the sample and the missing file will be
generated
-
If you
are setting up a D3D device on hardware which supports
hardware pixel processing but does not support hardware
vertex processing then you need to set the behavior flags
accordingly. In order to make samples that properly
fallback to software vertex processing, you should remove
following in the sample's IsDeviceAcceptable callback
Remove
the following from the sample’s IsDeviceAcceptable callback:
// Must
support vertex shader 1.1
if (caps.VertexShaderVersion
< new Version(1,1))
return false;
Make
sure that the following is part of the ModifyDeviceSettings
callback:
// If
device doesn't support HW T&L or doesn't support 1.1 vertex
shaders in HW
// then
switch to SWVP.
if ( (!caps.DeviceCaps.SupportsHardwareTransformAndLight)
||
(caps.VertexShaderVersion
< new Version(1,1)) )
{
settings.BehaviorFlags =
CreateFlags.SoftwareVertexProcessing;
}
else
{
settings.BehaviorFlags
= CreateFlags.HardwareVertexProcessing;
}
back to top
Refer to the “what’s new” section in the SDK documentation for
new functionality in Direct3D
Issues:
-
The Direct3D SDK version
number (D3D_SDK_VERSION in d3d9.h) has been changed. This
will cause Direct3D applications compiled against this SDK's
headers to fail at Direct3DCreate9 time unless DirectX 9c is
installed. This change was made to give developers an early
warning of these subtle runtime dependency issues, rather
than having to debug an app that failed for
less-than-obvious reasons much later.
If you wish to enable your newly-compiled application to run
against DirectX 9, 9a and 9b installations, pass
D3D9b_SDK_VERSION to Direct3DCreate9 instead.
-
IDirect3DTexture9::GetLOD is
used for LOD control of managed textures. If you call GetLOD
on an unmanaged resource, a D3DERR error code will be
returned.
-
D3D9 interfaces are restricted
to DirectX 7 level and above DDI drivers.
-
A limitation of the
Windows2000 Kernel can result in some resources being freed
while the resource is locked and being accessed by the
application. This results in the app writing to freed
memory, causing an exception. The problem only occurs with
D3DPOOL_DEFAULT resources that the display driver chooses to
place in system memory. When the device is put into a lost
state (due to a mode change or ALT+TAB), all D3DPOOL_DEFAULT
resources are freed. Direct3D has code to alias video memory
resource pointers and redirect them to a dummy page, but
D3DPOOL_DEFAULT system memory resources are not protected.
The most common D3DPOOL_DEFAULT resources that get placed in
system memory are Index Buffers, but some drivers may choose
to place other resources in system memory as well. Apps can
protect themselves by wrapping all resource accesses inside
try…catch blocks.
-
When using the Direct3D
software T&L pipeline (device created with
D3DCREATE_SOFTWARE_VERTEXPROCESSING flag set or with
D3DCREATE_MIXED_VERTEXPROCESSING flag and software vertex
processing toggled on), then point sprite support is
guaranteed. When using hardware vertex processing, some
drivers may not support point sprites, but they must
indicated this by setting d3dcaps->MaxPointSize to 1.0f.
- On Windows98 and WindowsME,
there are cases where a dialog box is not properly displayed
on present after enabling GDI dialog boxes with
SetDialogBoxMode. Applications can workaround this problem
by calling Reset after each SetDialogBoxMode call.
Issues (Vertex/Pixel Shader):
-
Two
vertex shader instructions may
produce implementation-specific results for out-of-range inputs,
such as the log of a negative number. The
log, logp and y- component of the
lit instruction macro should not be
passed negative values for this reason.
-
The
D3DMISCCAPS_CLIPPLANESCALEDPOINTS caps bit is improperly set in
the DirectX 8 software vertex processing pipeline device. The
bit is cleared in the corresponding DirectX 9 device; however,
we have decided not to change the legacy behavior for the
DirectX 8 device since this change would introduce inconsistent
behavior between DirectX 8.0, 8.1 and DirectX 9.0 versions of
the DirectX 8 device.
-
Change in behavior for shader def instructions between DirectX 8
and DirectX 9 - The behavior of the constant "def"
instruction in vertex and pixel shaders has been changed between
DirectX 8 and DirectX 9. The new defi and defb instructions
fall in the same category. In DirectX 9, the lifetime of def'd
constants in a given shader is confined to the execution of that
shader only (and is non-overridable). The DirectX 9 behavior is
as follows. If a shader is set with c4 def'd, then a call to
Set*ShaderConstantF() on c4 is made then shader get the def'd
value. If another shader that uses c4 (but does not def it) is
run, the shader will get what was set via Set*ShaderConstantF().
Likewise, calling Get*ShaderConstantF() will only ever retrieve
constant values set via Set*ShaderConstantF(). DX8 behavior was
that defs in a shader had their effect at the moment Set*Shader()
was called, as if Set*ShaderConstant() was called for each def'd
value, followed by setting the shader itself. Calls to Set*ShaderConstant()
after setting a shader with def'd values would therefore
override the def'd values. This could be desirable, but had the
unwanted property that the order that multiple shaders are set
could affect their behavior if a shader ever used a constant
value that was def'd by another shader. As would be expected,
the DirectX 9 runtime manages constants to ensure that even when
running on a DirectX 8 driver, the DirectX 9 behavior described
above is what will always be observed.
-
When creating a VS 3.0 shader on devices which do not support PS
3.0, you must take care in expressing the output declarations,
because the runtime will pass on the contents and
ordering of these declarations to the rasterizer, which expects
the results to map to an FVF. In particular:
a)
Vertex semantics must be expressible in an FVF
b)
The order of declarations should conform to order restrictions
for vertex semantics within an FVF
Failure to follow these rules will result in asserts and debug
error messages such as:
Direct3D9: Decl Validator: X1059: (Global Error) On a device
that does not support ps_3_0, a transformed vertex declaration
must specify elements in FVF order.
back to top
This release of DirectSound has
identical features to that of DirectX 9.0 and there is no plan
to add additional features for the DirectX 9.0 SDK Update. See
MSDN for previous
release notes.
back to top
DirectMusic®
This release of DirectMusic has
identical features to that of DirectX 9.0 and there is no plan
to add additional features. The samples, documentation, and
release notes are available on
MSDN.
back to top
This
release of DirectInput has identical features to that of DirectX
8.1 and there is no plan to add additional features to
DirectInput in DirectX 9.0
back to top
This release of DirectPlay has
identical features to that of DirectX 9.0 and there is no
plan to add additional features. The samples,
documentation, and
release notes are available on
MSDN.
No DirectPlay Debug DLLs
ships with this SDK release, so when you run DirectSetup
only the DirectPlay Retail installation option is available.
back to top
This release of DirectShow has
identical features to that of DirectX 9.0 and there is no
plan to add additional features for the DirectX 9.0 SDK
Update. See MSDN for previous
release notes.
The X64
DirectShow DVDSample and PlayDVD samples require a 64-bit
native DVD decoder to function properly. No such decoders
were available at the time of this SDK beta release. It is
likely that 3rd parties will provide decoders, so the sample
build environments and pre-built binaries have been left
intact in the SDK.
back to top
Broadcast Driver
Architecture
This release of Broadcast
Driver Architecture has identical features to that of
DirectX 9.0 and there is no plan to add additional features
for the DirectX 9.0 SDK Update. See MSDN for previous
release notes.
back to top
back to top
CD Layout:
The following is a brief
description of the directories found following
installation of the DirectX 9.0 SDK Update. Depending
on options specified during installation, some of these
directories may not be installed on your hard drive.
The description below assumes a complete SDK install.
\Developer
Runtime
The Developer Runtime folder contains OS-specific
debug versions of the DirectX runtime that have been
customized to help DirectX developers debug issues
related to their applications. It also contains
Retail and Debug versions of the DirectX® 9.0 for
Managed Code runtime.
The debug files are installed during the SDK portion
of the setup program and can be loaded on demand,
based on settings in the DirectX control panel. The
files in this directory should be adequate for
debugging most DirectX applications.
Upon installation of these versions of the DirectX
runtime, DXDiag.exe will report that the debug
versions of the files have been installed and will
give the following notice:
"Several files
(d3dx8d.dll, d3dx9d.dll, d3d9d.dll) are Debug
versions, which will run slower than the Retail
version."
Note that this is only applicable
when the Debug switch in the DirectX control panel
is applied. Setting
all the switches to Retail in the DirectX control
panel will configure DirectX to perform just as the
normal version of the End-User Runtime.
Switching from Retail
to Debug Versions of DirectX for Managed Code
Switching between retail and debug is not available
via the DirectX.cpl at this time. Please refer
to the "Tools
- Issue" section for a work around.
Switching from Debug
to Retail Versions of DirectX
To switch back to retail version of the DirectX
runtime, the developer's would need to reinstall the
DirectX redist. After re-installing the redist,
there will be several developer files (d3dref.dll,
d3dref8.dll, d3dref9.dll, and directx.cpl) that will
remain on the system. These files are removed when
the SDK is uninstalled.
List of DirectX
Switchable Debug DLL's:
d3d8d.dll
d3d9d.dll
d3dx8d.dll
d3dx9d.dll
dinput8d.dll
dmbandd.dll
dmcompod.dll
dmimed.dll
dmloaded.dll
dmscripd.dll
dmstyled.dll
dmsynthd.dll
dmusicd.dll
dswaved.dll
Additional Files
Installed with the Developer Runtime:
d3dref.dll
d3dref8.dll
d3dref9.dll
directx.cpl
\Documentation
\DirectX9
Contains reference
documentation for the DirectX 9.0 APIs.
The CHM Documentation must be viewed
with Windows
HTMLHelp. Note: The
HTMLHelp
viewer requires a minimum installation
of Internet Explorer 5.0 (IE5). IE5 can
be found at
http://www.microsoft.com/windows/ie/default.htm.
Documentation for DirectX for Managed
Code is installed automatically when
Visual Studio .NET 2002 is installed.
\License Agreements
Text versions of the
DirectX SDK, End User License Agreements
and the Redistributable License
Agreement.
\Extras
(Available as separate downloads)
\Direct3D
Contains
old DirectX modeling
package Plug-Ins & Exporters.
Note:
These old exporters only compile
with Visual Studio 6.0.
\DirectShow
Contains the
DirectShow Samples
(C++ & VB), tools, DVDBoilerplate and
additional media that can be used
with DirectShow and the DirectShow
Editing Services (DES) interfaces
\Documentation
Contains complete
DirectX 9.0 Japanese documentation. It
also includes DirectX 7
HTMLHelp
Documentation for English and Japanese,
DirectX 7 Documentation in
Microsoft Word format (English only) and
DirectX 8
HTMLHelp
Documentation for Japanese.
\Symbols
The
retail symbols directory contains
symbol files for the version of
DirectX 9.0 contained in the Redist
directory. The Debug symbols
directory contains symbol files for
the switch-able debug files that can
be activated using the DirectX
Control Panel.
To
use the symbol files, add the
appropriate directories to your
symbol path, or copy the files to
your symbols directory. Depending on
the operating system you want to
debug you may need to include
different directories first. There
is a general directory and possibly
an addition directory with symbol
files specific for each operating
system.
You
symbol path should include the
specific directory if one exists
first, then the general directory.
For example to use the files for
Windows XP you would have a symbol
path that looked something like
this:
SymPath=c:\symbols\retail\WinXP
Only;c: \symbols\retail\Win2K-XP;
For
Windows ME you might use a symbol
path like this:
SymPath=c:\symbols\retail\Win9x
There is not additional directory
required for Windows ME. All the
supported symbol files exist in the
\Symbols\Retail\Win9x directory.
\Include
Contains
DirectX 9.0 include files for DirectX core
components.
\Lib
Contains DirectX 9.0
library files for DirectX core components.
\Redist
Redistributable versions
of the DirectX 9.0c Runtime with update
Managed DirectX binaries from this SDK
release.
\Samples
Contains all
sample code and sample binaries. Most
samples can be accessed
directly by the SDK Sample Browser located
on the Start menu when installed via the
downloaded
InstallShield
setup.
\Utilities
High level DirectX
applications & tools. Most can be accessed
from the SDK sample browser.
\Content
Creation Tool Plug-Ins
This
directory contains the Maya and
Photoshop content plug-ins.
\DirectX
extensions for Visual Studio .NET
Microsoft®
Visual Studio® supports debugging
assembly level and high-level language
vertex and pixel shaders.
\x64
This
directory contains the 64 bit version of
the tools which supports the x64 bit
platforms.
\MView
Contains
the source code for the MView utility.
\Pix
PIX
(Performance Investigator for
DirectX) is a tool designed to
capture detailed performance
information from a running
application. This tool will help
developers understand the work done
by the application and by Microsoft®
Direct3D® by analyzing frame data.
\Plug-ins
This
directory contains Maya 5.0 and
photoshop plug-ins.
back to
top
ROLAND
SoundCanvas Sound Set For General MIDI And GS Format
The
Roland SoundCanvas Sound Set includes the necessary sounds
to make a complete General MIDI compatible sound set. It
also includes additional sounds necessary to make a complete
GS Format compatible sound set.
WHAT IS THE GS FORMAT?
The GS
Format is a standardized set of specifications for sound
sources that defines the manner in which multitimbral sound
generating devices will respond to MIDI messages. The GS
Format also complies with General MIDI System Level 1.
The GS
Format also defines a number of other details over and above
the features of General MIDI. These include unique
specifications for sound and functions available for tone
editing, effects, and other specifications concerning the
manner in which sound sources will respond to MIDI
messages. Any device that is equipped with GS Format sound
sources can faithfully reproduce both General MIDI sound
recordings and GS Format MIDI sound recordings.
HOW TO CONTACT ROLAND:
Roland Corporation U.S.
7200 Dominion Circle
Los Angeles, CA
90040-3696
Phone:
(323) 890-3700
Fax:
(323) 890-3701
COPYRIGHT NOTICE AND LICENSE
LIMITATIONS
Roland GS Sound Set/Microsoft
(P) 1996 Roland Corporation U.S.
The Roland GS Sound
Set/Microsoft, the "Sample Set", incorporates the Roland
SoundCanvas Sound Set. Roland
Corporation U.S. owns the Sample Set and
all copyrights pertaining thereto and has licensed the
Sample Set for use solely on
Microsoft operating system products and Microsoft
Application Products.
Roland reserves all rights to
the Sample Set not expressly granted by Roland Corporation
U.S. or by Microsoft under the terms of Microsoft's End User
License Agreement.
The Sample Set may only be
redistributed with your software application as a
part of a Microsoft operating
system product installation and under the terms
of Microsoft's End User License Agreement. The Sample
Set may not be separated from the
Microsoft operating system product; the Sample Set may
only be installed by the Microsoft installation
procedure for the associated Microsoft operating system
product or for an associated software development
kit. All other uses of the Sample Set require a
separate written license from
Roland Corporation U.S.
The Sample Set may not be
used, copied or redistributed in hardware ROM or
similar technology of any device
without prior express written permission
from an authorized representative of Roland
Corporation U.S. The Sample Set may not be redistributed
with any Musical Instrument . A
"Musical Instrument" is any device that is capable of
generating musical sounds without
being directly connected to a computer with a licensed
Microsoft operating system
product. You may not modify the Sample Set under any
circumstances.
back to top
|